package com.spider.silence.main;

import com.spider.silence.downloader.AiKaForumDownLoader;
import com.spider.silence.pool.AiKaDownLoaderPool;
import com.spider.silence.utils.PropertiesUtil;
import com.spider.silence.worker.AiKaWorker;
import org.apache.log4j.PropertyConfigurator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * Created by qiuhao on 2017/5/5.
 */
public class AiKaMain {

    public static void main(String args[] ) throws  Exception{
        PropertyConfigurator.configure( PropertiesUtil.getLogPro());//初始化日志环境
        //获取下载器池单例
        AiKaDownLoaderPool downLoaderPool= AiKaDownLoaderPool.getInstance();
        //从下载器池中获取下载器
        AiKaForumDownLoader downLoader=(AiKaForumDownLoader)downLoaderPool.fetchDownLoader(1000);
        //创建任务和把任务放到任务管理中心
        downLoader.generateTask();
        //初始化任务完后把下载器放回下载器中
        downLoaderPool.releaseDownLoader(downLoader);
        //创建线程池
        ExecutorService pool =  Executors.newFixedThreadPool(3000);
        //创建多个工作者线程从下载器单例池中取下载器处理从任务中心取得的任务 用完后把下载器放回到下载器池中
        for(int i=0;i<Integer.valueOf(PropertiesUtil.getVal("AiKa.WorkerCount"));i++){
            pool.execute(new AiKaWorker());
        }
    }
}
